package com.atguigu.tingshu.dispatch.task;

import com.xxl.job.core.context.XxlJobHelper;
import com.xxl.job.core.handler.annotation.XxlJob;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

import java.util.Arrays;
import java.util.List;

@Component
@Slf4j
public class XXLJobTask {

    @XxlJob(value = "task01")
    public void task01() {
        log.info("XXLJobTask...task01方法执行了...");
    }

    @XxlJob(value = "task02JobHandler")
    public void task02() {

        // 执行业务逻辑之前，让xxl job去记录日志
        XxlJobHelper.log("任务要开始执行了...") ;
        String param = XxlJobHelper.getJobParam();          // 获取任务的参数
        log.info("XXLJobTask...task02方法执行了...param: {}" , param);

        // 执行业务逻辑之后，让xxl job去记录日志
        XxlJobHelper.log("任务执行完毕了...") ;
    }
//
//    @XxlJob(value = "task03JobHandler")
//    public void task03() {
//
//        // 获取从数据库查询到的数据的id
//        List<Long> ids = Arrays.asList(1L, 2L, 3L, 4L, 5L, 6L);
//
//        // 获取执行器数量以及当前执行器所对应的索引值
//        int shardTotal = XxlJobHelper.getShardTotal();
//        int shardIndex = XxlJobHelper.getShardIndex();
//
//        for( Long id : ids) {
//            if(id % shardTotal == shardIndex) {
//                log.info("处理了数据，id为：{}" , id );
//            }
//        }
//
//    }


}